//对axios请求进行二次封装
import axios from 'axios'
// 引入进度条插件
// import nprogress from 'nprogress'
//start：进度条开始 done：进度条结束
// 引入进度条样式
// import 'nprogress/nprogress.css'

// 引入vuex
import store from '../store/store'
import { readToken } from './uuid_token'

// 创建axios实例，设置默认配置
const request = axios.create({
  baseURL: '/dev',
  //baseURL: 'http://gmall-h5-api.atguigu.cn',
  // baseURL: 'http://sph-h5-api.atguigu.cn',
  timeout: 5000
})

// 请求拦截器
request.interceptors.request.use(config => {
  // 在发送请求之前做些什么
  // nprogress.start()
  // console.log(config)
  // 给每个请求添加uuid_token
  // console.log(store.state.detail.uuid_token)
  if (store.state.detail.uuid_token) {
    config.headers.userTempId= store.state.detail.uuid_token;
  }

  // 给每个请求添加token
  // console.log(store.state.user.token)
  // if (store.state.user.token){
  //   config.headers.token = store.state.user.token;
  // }

  // 在请求头中添加token —— 含义是：用户的真实身份
  //readToken()方法是从本地存储中读取token
  config.headers.token = readToken()
  
  return config
}, error => {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 响应拦截器
request.interceptors.response.use(response => {
  // 对响应数据做点什么
  // nprogress.done()
  return response.data
}, error => {
  // 对响应错误做点什么
  return Promise.reject(error)
})

export default request
